package com.common.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class CalendarFormat {
    private CalendarFormat() {
    }

    public static String getYYMM() {
        Calendar c = Calendar.getInstance();//可以对每个时间域单独修改
        SimpleDateFormat s = new SimpleDateFormat("yyyy-MM");
        String curDate = s.format(c.getTime());  //当前日期
        return curDate;
    }

    public static String getYYMMDD() {
        Calendar c = Calendar.getInstance();//可以对每个时间域单独修改
        SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd");
        String curDate = s.format(c.getTime());  //当前日期
        return curDate;
    }

    public static String getYYMMDDTime() {
        Calendar c = Calendar.getInstance();//可以对每个时间域单独修改
        SimpleDateFormat s = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String curDate = s.format(c.getTime());  //当前日期
        return curDate;
    }

    public static String getYYMMDDTimeWeek() {
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss E");
        String newTimeString = simpleDateFormat.format(calendar.getTime());
        return newTimeString;
    }

    public static String getYMDSFM() {
        Calendar calendar = Calendar.getInstance();
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss E a");
        String newTimeString = simpleDateFormat.format(calendar.getTime());
        return newTimeString;
    }

    public static Date getDateYMDD(String dateString) {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd ");
        Date date = null;
        try {
            date = sdf.parse(dateString);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }
	/*
	SimpleDateFormat函数语法：
	G 年代标志符
	y 年
	M 月
	d 日
	h 时 在上午或下午 (1~12)
	H 时 在一天中 (0~23)
	m 分
	s 秒
	S 毫秒
	E 星期
	D 一年中的第几天
	F 一月中第几个星期几
	w 一年中第几个星期
	W 一月中第几个星期
	a 上午 / 下午 标记符 
	k 时 在一天中 (1~24)
	K 时 在上午或下午 (0~11)
	z 时区
	*/

    public static void main(String[] args) {
        System.out.println(getYYMMDDTimeWeek());
        System.out.println(getYMDSFM());
    }

}
